<?php
/**
 * swoole 里面后续所有task任务
 * Date: 2018/7/29
 * Time: 14:07
 */

namespace app\common\lib\task;

use app\common\lib\ali\Sms;
use app\common\lib\redis\Predis;
use app\common\lib\Redis;
use app\common\lib\Util;

class Task
{
    /**
     * 异步task发送验证码
     * @param $data
     * @param $serv
     * @return bool
     */
    public function sendSms($data, $serv)
    {
        try {
            //发送短信号码
            $response = Sms::sendSms($data['phone'], $data['code']);
        } catch (\Exception $e) {
            //todo
            return false;
        }

        //如果发送成功，我们要存redis
        if ($response->Code == "OK") {
            Predis::getInstance()->set(Redis::smsKey($data['phone']), $data['code'], config('redis.out_time'));
        } else {
            return false;
        }
        return true;
    }

    /**
     * 通过task 机制发送赛况数据给客户端
     * @param $data
     * @param $serv
     * @param $ports
     */
    public function pushLive($data, $serv, $ports)
    {
        //这里遍历，发送给所有用户，用的是swoole自己的一个connections
        foreach ($serv->ports[$ports]->connections as $fd) {
            try {
                $serv->push($fd, json_encode($data));
            } catch (\Exception $e) {

            }
        }
    }
}